package com.tmxk.day01.lifeng.demo2;
/*
 * 机动车类
 */
public class Vehicle {
	//定义三个静态特征(属性)
	String color;
	String brand;
	String name;
	double price;
	//方法重载:在同一个类中定义的方法名相同,形参列表不同构成程序中的方法重载
	//无参构造 和有参构造 是特殊的方法重载
	
	/**
	 * 定义无参构造方法
	 */
	//构造的作用是 给实例对象(初始)值
	public Vehicle() {
		color = "黑";
		brand = "特斯拉";
		name = "特斯拉--xx";
		price = 150000;
	}
	
	/**
	 * @param: 参数注解
	 * @param color 形参,局部变量,颜色
	 * @param brand 形参,局部变量,品牌
	 * @param name  形参,局部变量,名称
	 * @param price 形参,局部变量,价格
	 */
	public Vehicle(String color,String brand,String name,double price) {
		//为了区分形参传递的和当前本类的同名属性,使用this关键字进行区分
		//this 就是当前对象引用
		this.color = color;
		this.brand = brand;
		this.name = name;
		this.price = price;
	}
	//设置get/set方法  get:获取值  set:设置值
	/**
	 * 方法分类:无返回值数据类型,无参数
	 * 		   无返回值数据类型,带参数
	 * 		   有返回值数据类型,无参数
	 * 		   有返回值数据类型,带参数
	 * 无返回值数据类型关键字: void
	 * 形参: 形式上的参数,方法定义时,小括号中传递的,由数据类型和参数名组成;
	 * 实参: 实际传递的参数,调用方法时,小括号中传递的,只需传递参数名即可;
	 * 无返回值数据类型,无参数 语法: 访问修饰符  void 方法名(){  //  方法体 }
	 * 无返回值数据类型,带参数 语法: 访问修饰符  void 方法名(形参列表){  // 方法体}
	 * 有返回值数据类型,无参数 语法: 访问修饰符 返回值数据类型  方法名(){return 对应返回数据类型结果}
	 */
	/**
	 * 获取颜色的方法
	 * @return 返回颜色
	 */
	public String getColor() {
		return this.color;
	}
	/**
	 * 设置颜色方法
	 * @param color形参,局部变量,颜色
	 */
	public void setColor(String color) {
		this.color = color;
	}
	public double getPrice(){
		return this.price;
	}
	/**
	 * 设置价格方法
	 * @param price  价格,程序要对传递的价格进行基本的逻辑判断,不小于0
	 */
	public void setPrice(double price){
		if (price <= 0 ){
			System.out.println("不好意思,机动车不能倒贴,官方价格为: 200000");
			this.price = 200000;
		}else {
			this.price = price;
		}
	}
	/**
	 * 定义一个显示机动车基本信息的方法
	 */
	public void showInfo() {
		System.out.println("机动车的基本信息:" + color +"色,品牌是:" + brand + ",名称是:" +name + ",价格是:" +price);
	}
}
